One of the more widely used electronic devices today is the mobile or cellular phone. Improvements in capabilities and features have been made as newer generations of mobile phones and infrastructure are introduced. Third and fourth generation (3G and 4G) phones can access high-bandwidth cellular networks, enabling video, gaming, and other multimedia services.
While there may be various implementations of feature phones, a dual-processor implementation is sometimes used. FIG. 1 shows a feature phone with two processors. Feature phone 10 has advanced capabilities, and includes applications processor 20 to execute programs that implement some of these more advanced features, such as H.264 or MPEG-4 video encoding and decoding, camera support, and MP3 audio player support.
Radio-frequency RF circuit 22 includes one or more chips and transmits and receives radio signals over the antenna of phone 10. These signals are converted to digital form and communicated with base-band processor 24. Control of the transceiver and implementation of cellular communications protocols is handled by base-band processor 24.
Information such as phone numbers, call status, and menus are displayed to a phone user on display 12, which may be a liquid crystal display (LCD). Keypad 14 accepts user-inputted phone numbers and text, with keys for sending and ending a call in addition to numeric telephone keys. Control over keypad 14 is handled by base-band processor 24, while display 12 is controlled by applications processor 20.
A separate applications processor 20 can provide a more robust phone platform since base-band processor 24 does not have to been significantly altered for advanced features, which are executed on applications processor 20.
User data such as call logs, phone numbers, and user preferences are stored in memory 16. Memory 16 can be a static random-access memory (SRAM), flash, or other non-volatile memory. Memory 16 can be accessed by base-band processor 24 and/or by applications processor 20. Data can be shared when both processor have operating systems that can recognize file formats used by the other processor.
Some data must be transferred between base-band processor 24 and applications processor 20. For example, video or picture data may be received over the cell network by base-band processor 24 and transferred to applications processor 20 for further processing, or a digital camera image captured by applications processor 20 may be sent to base-band processor 24 for transmission over the cell network.
The desire to reduce the size of the phone as much as possible may require that peripheral devices be shared among the two processors. For example, keypad 14 can be controlled by base-band processor 24. However, sometimes user key presses are for controlling execution of programs that are executing on applications processor 20 rather than on base-band processor 24. It may be desirable to transfer key press information from base-band processor 24 to applications processor 20 in such as situation.
The interface between applications processor 20 and base-band processor 24 may be difficult to use. For examples, special software drivers may need to be written for execution on both applications processor 20 and base-band processor 24 for transferring various types of data. Lower-level software or operating system modules may need to be modified. Such changes require extensive compatibility testing to ensure that the phones do not fail in the field.
The parent application disclosed a feature phone with a base-band processor and applications processor that used a shared-mailbox interface between the two processors. The parent application disclosed emulating a network such as Transport-Control-Protocol/Internet Protocol (TCP/IP) and Ethernet using this shared-mailbox interface.
What is desired is a feature phone with a user interface shared among the applications processor and base-band processor. It is desired to use the shared mailbox interface between the processors for relaying key-press information. Virtualizing the user-input device using the shared-mailbox interface is desirable.